home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 April: Mac OS SDK / Dev.CD Apr 99 SDK1.toast / Development Kits / QuickTime / QuickTime 3 Interfaces & Libs / QTDevWin / CIncludes / MediaHandlers.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-08-21  |  20.8 KB  |  592 lines  |  [TEXT/dosa]

  1. /*
  2.      File:        MediaHandlers.h
  3.  
  4.      Contains:    QuickTime Interfaces.
  5.  
  6.      Version:    Technology:    QuickTime 3.0
  7.                  Release:    QuickTime 3.0
  8.  
  9.      Copyright:    © 1990-1998 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. */
  18. #ifndef __MEDIAHANDLERS__
  19. #define __MEDIAHANDLERS__
  20.  
  21. #ifndef __CONDITIONALMACROS__
  22. #include <ConditionalMacros.h>
  23. #endif
  24. #ifndef __MACTYPES__
  25. #include <MacTypes.h>
  26. #endif
  27. #ifndef __COMPONENTS__
  28. #include <Components.h>
  29. #endif
  30. #ifndef __MOVIES__
  31. #include <Movies.h>
  32. #endif
  33.  
  34.  
  35.  
  36. #if PRAGMA_ONCE
  37. #pragma once
  38. #endif
  39.  
  40. #ifdef __cplusplus
  41. extern "C" {
  42. #endif
  43.  
  44. #if PRAGMA_IMPORT
  45. #pragma import on
  46. #endif
  47.  
  48. #if PRAGMA_STRUCT_ALIGN
  49.     #pragma options align=mac68k
  50. #elif PRAGMA_STRUCT_PACKPUSH
  51.     #pragma pack(push, 2)
  52. #elif PRAGMA_STRUCT_PACK
  53.     #pragma pack(2)
  54. #endif
  55.  
  56. typedef CALLBACK_API( void , PrePrerollCompleteProcPtr )(MediaHandler mh, OSErr err, void *refcon);
  57. typedef STACK_UPP_TYPE(PrePrerollCompleteProcPtr)                 PrePrerollCompleteUPP;
  58.  
  59. enum {
  60.     handlerHasSpatial            = 1 << 0,
  61.     handlerCanClip                = 1 << 1,
  62.     handlerCanMatte                = 1 << 2,
  63.     handlerCanTransferMode        = 1 << 3,
  64.     handlerNeedsBuffer            = 1 << 4,
  65.     handlerNoIdle                = 1 << 5,
  66.     handlerNoScheduler            = 1 << 6,
  67.     handlerWantsTime            = 1 << 7,
  68.     handlerCGrafPortOnly        = 1 << 8,
  69.     handlerCanSend                = 1 << 9,
  70.     handlerCanHandleComplexMatrix = 1 << 10,
  71.     handlerWantsDestinationPixels = 1 << 11,                    /* DNC Code: New flag to indicate the handler sends image data to modifier tracks*/
  72.     handlerCanSendImageData        = 1 << 12
  73. };
  74.  
  75. /* media task flags */
  76.  
  77. enum {
  78.     mMustDraw                    = 1 << 3,
  79.     mAtEnd                        = 1 << 4,
  80.     mPreflightDraw                = 1 << 5,
  81.     mSyncDrawing                = 1 << 6
  82. };
  83.  
  84. /* media task result flags */
  85.  
  86. enum {
  87.     mDidDraw                    = 1 << 0,
  88.     mNeedsToDraw                = 1 << 2,
  89.     mDrawAgain                    = 1 << 3,
  90.     mPartialDraw                = 1 << 4
  91. };
  92.  
  93.  
  94. enum {
  95.     forceUpdateRedraw            = 1 << 0,
  96.     forceUpdateNewBuffer        = 1 << 1
  97. };
  98.  
  99. /* media hit test flags */
  100.  
  101. enum {
  102.     mHitTestBounds                = 1L << 0,                        /*    point must only be within targetRefCon's bounding box */
  103.     mHitTestImage                = 1L << 1,                        /*  point must be within the shape of the targetRefCon's image */
  104.     mHitTestInvisible            = 1L << 2,                        /*  invisible targetRefCon's may be hit tested */
  105.     mHitTestIsClick                = 1L << 3                        /*  for codecs that want mouse events */
  106. };
  107.  
  108. /* media is opaque flags */
  109.  
  110. enum {
  111.     mOpaque                        = 1L << 0,
  112.     mInvisible                    = 1L << 1
  113. };
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121. struct GetMovieCompleteParams {
  122.     short                             version;
  123.     Movie                             theMovie;
  124.     Track                             theTrack;
  125.     Media                             theMedia;
  126.     TimeScale                         movieScale;
  127.     TimeScale                         mediaScale;
  128.     TimeValue                         movieDuration;
  129.     TimeValue                         trackDuration;
  130.     TimeValue                         mediaDuration;
  131.     Fixed                             effectiveRate;
  132.     TimeBase                         timeBase;
  133.     short                             volume;
  134.     Fixed                             width;
  135.     Fixed                             height;
  136.     MatrixRecord                     trackMovieMatrix;
  137.     CGrafPtr                         moviePort;
  138.     GDHandle                         movieGD;
  139.     PixMapHandle                     trackMatte;
  140.     QTAtomContainer                 inputMap;
  141. };
  142. typedef struct GetMovieCompleteParams    GetMovieCompleteParams;
  143.  
  144. enum {
  145.     kMediaVideoParamBrightness    = 1,
  146.     kMediaVideoParamContrast    = 2,
  147.     kMediaVideoParamHue            = 3,
  148.     kMediaVideoParamSharpness    = 4,
  149.     kMediaVideoParamSaturation    = 5,
  150.     kMediaVideoParamBlackLevel    = 6,
  151.     kMediaVideoParamWhiteLevel    = 7
  152. };
  153.  
  154.  
  155. typedef Handle *                        dataHandlePtr;
  156. typedef dataHandlePtr *                    dataHandleHandle;
  157.  
  158.  
  159.  
  160. /* MediaCallRange2 */
  161. /* These are unique to each type of media handler */
  162. /* They are also included in the public interfaces */
  163.  
  164.  
  165. /***** These are the calls for dealing with the Generic media handler *****/
  166. EXTERN_API( ComponentResult )
  167. MediaInitialize                    (MediaHandler             mh,
  168.                                  GetMovieCompleteParams * gmc)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0501, 0x7000, 0xA82A);
  169.  
  170. EXTERN_API( ComponentResult )
  171. MediaSetHandlerCapabilities        (MediaHandler             mh,
  172.                                  long                     flags,
  173.                                  long                     flagsMask)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0502, 0x7000, 0xA82A);
  174.  
  175. EXTERN_API( ComponentResult )
  176. MediaIdle                        (MediaHandler             mh,
  177.                                  TimeValue                 atMediaTime,
  178.                                  long                     flagsIn,
  179.                                  long *                    flagsOut,
  180.                                  const TimeRecord *        movieTime)                            FIVEWORDINLINE(0x2F3C, 0x0010, 0x0503, 0x7000, 0xA82A);
  181.  
  182. EXTERN_API( ComponentResult )
  183. MediaGetMediaInfo                (MediaHandler             mh,
  184.                                  Handle                 h)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0504, 0x7000, 0xA82A);
  185.  
  186. EXTERN_API( ComponentResult )
  187. MediaPutMediaInfo                (MediaHandler             mh,
  188.                                  Handle                 h)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0505, 0x7000, 0xA82A);
  189.  
  190. EXTERN_API( ComponentResult )
  191. MediaSetActive                    (MediaHandler             mh,
  192.                                  Boolean                 enableMedia)                        FIVEWORDINLINE(0x2F3C, 0x0002, 0x0506, 0x7000, 0xA82A);
  193.  
  194. EXTERN_API( ComponentResult )
  195. MediaSetRate                    (MediaHandler             mh,
  196.                                  Fixed                     rate)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0507, 0x7000, 0xA82A);
  197.  
  198. EXTERN_API( ComponentResult )
  199. MediaGGetStatus                    (MediaHandler             mh,
  200.                                  ComponentResult *        statusErr)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0508, 0x7000, 0xA82A);
  201.  
  202. EXTERN_API( ComponentResult )
  203. MediaTrackEdited                (MediaHandler             mh)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0509, 0x7000, 0xA82A);
  204.  
  205. EXTERN_API( ComponentResult )
  206. MediaSetMediaTimeScale            (MediaHandler             mh,
  207.                                  TimeScale                 newTimeScale)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x050A, 0x7000, 0xA82A);
  208.  
  209. EXTERN_API( ComponentResult )
  210. MediaSetMovieTimeScale            (MediaHandler             mh,
  211.                                  TimeScale                 newTimeScale)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x050B, 0x7000, 0xA82A);
  212.  
  213. EXTERN_API( ComponentResult )
  214. MediaSetGWorld                    (MediaHandler             mh,
  215.                                  CGrafPtr                 aPort,
  216.                                  GDHandle                 aGD)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x050C, 0x7000, 0xA82A);
  217.  
  218. EXTERN_API( ComponentResult )
  219. MediaSetDimensions                (MediaHandler             mh,
  220.                                  Fixed                     width,
  221.                                  Fixed                     height)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x050D, 0x7000, 0xA82A);
  222.  
  223. EXTERN_API( ComponentResult )
  224. MediaSetClip                    (MediaHandler             mh,
  225.                                  RgnHandle                 theClip)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x050E, 0x7000, 0xA82A);
  226.  
  227. EXTERN_API( ComponentResult )
  228. MediaSetMatrix                    (MediaHandler             mh,
  229.                                  MatrixRecord *            trackMovieMatrix)                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x050F, 0x7000, 0xA82A);
  230.  
  231. EXTERN_API( ComponentResult )
  232. MediaGetTrackOpaque                (MediaHandler             mh,
  233.                                  Boolean *                trackIsOpaque)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0510, 0x7000, 0xA82A);
  234.  
  235. EXTERN_API( ComponentResult )
  236. MediaSetGraphicsMode            (MediaHandler             mh,
  237.                                  long                     mode,
  238.                                  const RGBColor *        opColor)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0511, 0x7000, 0xA82A);
  239.  
  240. EXTERN_API( ComponentResult )
  241. MediaGetGraphicsMode            (MediaHandler             mh,
  242.                                  long *                    mode,
  243.                                  RGBColor *                opColor)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0512, 0x7000, 0xA82A);
  244.  
  245. EXTERN_API( ComponentResult )
  246. MediaGSetVolume                    (MediaHandler             mh,
  247.                                  short                     volume)                                FIVEWORDINLINE(0x2F3C, 0x0002, 0x0513, 0x7000, 0xA82A);
  248.  
  249. EXTERN_API( ComponentResult )
  250. MediaSetSoundBalance            (MediaHandler             mh,
  251.                                  short                     balance)                            FIVEWORDINLINE(0x2F3C, 0x0002, 0x0514, 0x7000, 0xA82A);
  252.  
  253. EXTERN_API( ComponentResult )
  254. MediaGetSoundBalance            (MediaHandler             mh,
  255.                                  short *                balance)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0515, 0x7000, 0xA82A);
  256.  
  257. EXTERN_API( ComponentResult )
  258. MediaGetNextBoundsChange        (MediaHandler             mh,
  259.                                  TimeValue *            when)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0516, 0x7000, 0xA82A);
  260.  
  261. EXTERN_API( ComponentResult )
  262. MediaGetSrcRgn                    (MediaHandler             mh,
  263.                                  RgnHandle                 rgn,
  264.                                  TimeValue                 atMediaTime)                        FIVEWORDINLINE(0x2F3C, 0x0008, 0x0517, 0x7000, 0xA82A);
  265.  
  266. EXTERN_API( ComponentResult )
  267. MediaPreroll                    (MediaHandler             mh,
  268.                                  TimeValue                 time,
  269.                                  Fixed                     rate)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0518, 0x7000, 0xA82A);
  270.  
  271. EXTERN_API( ComponentResult )
  272. MediaSampleDescriptionChanged    (MediaHandler             mh,
  273.                                  long                     index)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0519, 0x7000, 0xA82A);
  274.  
  275. EXTERN_API( ComponentResult )
  276. MediaHasCharacteristic            (MediaHandler             mh,
  277.                                  OSType                 characteristic,
  278.                                  Boolean *                hasIt)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x051A, 0x7000, 0xA82A);
  279.  
  280. EXTERN_API( ComponentResult )
  281. MediaGetOffscreenBufferSize        (MediaHandler             mh,
  282.                                  Rect *                    bounds,
  283.                                  short                     depth,
  284.                                  CTabHandle             ctab)                                FIVEWORDINLINE(0x2F3C, 0x000A, 0x051B, 0x7000, 0xA82A);
  285.  
  286. EXTERN_API( ComponentResult )
  287. MediaSetHints                    (MediaHandler             mh,
  288.                                  long                     hints)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x051C, 0x7000, 0xA82A);
  289.  
  290. EXTERN_API( ComponentResult )
  291. MediaGetName                    (MediaHandler             mh,
  292.                                  Str255                 name,
  293.                                  long                     requestedLanguage,
  294.                                  long *                    actualLanguage)                        FIVEWORDINLINE(0x2F3C, 0x000C, 0x051D, 0x7000, 0xA82A);
  295.  
  296. EXTERN_API( ComponentResult )
  297. MediaForceUpdate                (MediaHandler             mh,
  298.                                  long                     forceUpdateFlags)                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x051E, 0x7000, 0xA82A);
  299.  
  300. EXTERN_API( ComponentResult )
  301. MediaGetDrawingRgn                (MediaHandler             mh,
  302.                                  RgnHandle *            partialRgn)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x051F, 0x7000, 0xA82A);
  303.  
  304. EXTERN_API( ComponentResult )
  305. MediaGSetActiveSegment            (MediaHandler             mh,
  306.                                  TimeValue                 activeStart,
  307.                                  TimeValue                 activeDuration)                        FIVEWORDINLINE(0x2F3C, 0x0008, 0x0520, 0x7000, 0xA82A);
  308.  
  309. EXTERN_API( ComponentResult )
  310. MediaInvalidateRegion            (MediaHandler             mh,
  311.                                  RgnHandle                 invalRgn)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0521, 0x7000, 0xA82A);
  312.  
  313. EXTERN_API( ComponentResult )
  314. MediaGetNextStepTime            (MediaHandler             mh,
  315.                                  short                     flags,
  316.                                  TimeValue                 mediaTimeIn,
  317.                                  TimeValue *            mediaTimeOut,
  318.                                  Fixed                     rate)                                FIVEWORDINLINE(0x2F3C, 0x000E, 0x0522, 0x7000, 0xA82A);
  319.  
  320. EXTERN_API( ComponentResult )
  321. MediaSetNonPrimarySourceData    (MediaHandler             mh,
  322.                                  long                     inputIndex,
  323.                                  long                     dataDescriptionSeed,
  324.                                  Handle                 dataDescription,
  325.                                  void *                    data,
  326.                                  long                     dataSize,
  327.                                  ICMCompletionProcRecordPtr  asyncCompletionProc,
  328.                                  UniversalProcPtr         transferProc,
  329.                                  void *                    refCon)                                FIVEWORDINLINE(0x2F3C, 0x0020, 0x0523, 0x7000, 0xA82A);
  330.  
  331. EXTERN_API( ComponentResult )
  332. MediaChangedNonPrimarySource    (MediaHandler             mh,
  333.                                  long                     inputIndex)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0524, 0x7000, 0xA82A);
  334.  
  335. EXTERN_API( ComponentResult )
  336. MediaTrackReferencesChanged        (MediaHandler             mh)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0525, 0x7000, 0xA82A);
  337.  
  338. EXTERN_API( ComponentResult )
  339. MediaGetSampleDataPointer        (MediaHandler             mh,
  340.                                  long                     sampleNum,
  341.                                  Ptr *                    dataPtr,
  342.                                  long *                    dataSize,
  343.                                  long *                    sampleDescIndex)                    FIVEWORDINLINE(0x2F3C, 0x0010, 0x0526, 0x7000, 0xA82A);
  344.  
  345. EXTERN_API( ComponentResult )
  346. MediaReleaseSampleDataPointer    (MediaHandler             mh,
  347.                                  long                     sampleNum)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0527, 0x7000, 0xA82A);
  348.  
  349. EXTERN_API( ComponentResult )
  350. MediaTrackPropertyAtomChanged    (MediaHandler             mh)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0528, 0x7000, 0xA82A);
  351.  
  352. EXTERN_API( ComponentResult )
  353. MediaSetTrackInputMapReference    (MediaHandler             mh,
  354.                                  QTAtomContainer         inputMap)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0529, 0x7000, 0xA82A);
  355.  
  356.  
  357. EXTERN_API( ComponentResult )
  358. MediaSetVideoParam                (MediaHandler             mh,
  359.                                  long                     whichParam,
  360.                                  unsigned short *        value)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x052B, 0x7000, 0xA82A);
  361.  
  362. EXTERN_API( ComponentResult )
  363. MediaGetVideoParam                (MediaHandler             mh,
  364.                                  long                     whichParam,
  365.                                  unsigned short *        value)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x052C, 0x7000, 0xA82A);
  366.  
  367. EXTERN_API( ComponentResult )
  368. MediaCompare                    (MediaHandler             mh,
  369.                                  Boolean *                isOK,
  370.                                  Media                     srcMedia,
  371.                                  ComponentInstance         srcMediaComponent)                    FIVEWORDINLINE(0x2F3C, 0x000C, 0x052D, 0x7000, 0xA82A);
  372.  
  373. EXTERN_API( ComponentResult )
  374. MediaGetClock                    (MediaHandler             mh,
  375.                                  ComponentInstance *    clock)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x052E, 0x7000, 0xA82A);
  376.  
  377. EXTERN_API( ComponentResult )
  378. MediaSetSoundOutputComponent    (MediaHandler             mh,
  379.                                  Component                 outputComponent)                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x052F, 0x7000, 0xA82A);
  380.  
  381. EXTERN_API( ComponentResult )
  382. MediaGetSoundOutputComponent    (MediaHandler             mh,
  383.                                  Component *            outputComponent)                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0530, 0x7000, 0xA82A);
  384.  
  385. EXTERN_API( ComponentResult )
  386. MediaSetSoundLocalizationData    (MediaHandler             mh,
  387.                                  Handle                 data)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0531, 0x7000, 0xA82A);
  388.  
  389.  
  390.  
  391.  
  392. EXTERN_API( ComponentResult )
  393. MediaGetInvalidRegion            (MediaHandler             mh,
  394.                                  RgnHandle                 rgn)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x053C, 0x7000, 0xA82A);
  395.  
  396.  
  397. EXTERN_API( ComponentResult )
  398. MediaSampleDescriptionB2N        (MediaHandler             mh,
  399.                                  SampleDescriptionHandle  sampleDescriptionH)                FIVEWORDINLINE(0x2F3C, 0x0004, 0x053E, 0x7000, 0xA82A);
  400.  
  401. EXTERN_API( ComponentResult )
  402. MediaSampleDescriptionN2B        (MediaHandler             mh,
  403.                                  SampleDescriptionHandle  sampleDescriptionH)                FIVEWORDINLINE(0x2F3C, 0x0004, 0x053F, 0x7000, 0xA82A);
  404.  
  405. EXTERN_API( ComponentResult )
  406. MediaQueueNonPrimarySourceData    (MediaHandler             mh,
  407.                                  long                     inputIndex,
  408.                                  long                     dataDescriptionSeed,
  409.                                  Handle                 dataDescription,
  410.                                  void *                    data,
  411.                                  long                     dataSize,
  412.                                  ICMCompletionProcRecordPtr  asyncCompletionProc,
  413.                                  const ICMFrameTimeRecord * frameTime,
  414.                                  UniversalProcPtr         transferProc,
  415.                                  void *                    refCon)                                FIVEWORDINLINE(0x2F3C, 0x0024, 0x0540, 0x7000, 0xA82A);
  416.  
  417. EXTERN_API( ComponentResult )
  418. MediaFlushNonPrimarySourceData    (MediaHandler             mh,
  419.                                  long                     inputIndex)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0541, 0x7000, 0xA82A);
  420.  
  421.  
  422. EXTERN_API( ComponentResult )
  423. MediaGetURLLink                    (MediaHandler             mh,
  424.                                  Point                     displayWhere,
  425.                                  Handle *                urlLink)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0543, 0x7000, 0xA82A);
  426.  
  427.  
  428. EXTERN_API( ComponentResult )
  429. MediaMakeMediaTimeTable            (MediaHandler             mh,
  430.                                  long **                offsets,
  431.                                  TimeValue                 startTime,
  432.                                  TimeValue                 endTime,
  433.                                  TimeValue                 timeIncrement,
  434.                                  short                     firstDataRefIndex,
  435.                                  short                     lastDataRefIndex,
  436.                                  long *                    retDataRefSkew)                        FIVEWORDINLINE(0x2F3C, 0x0018, 0x0545, 0x7000, 0xA82A);
  437.  
  438. EXTERN_API( ComponentResult )
  439. MediaHitTestForTargetRefCon        (MediaHandler             mh,
  440.                                  long                     flags,
  441.                                  Point                     loc,
  442.                                  long *                    targetRefCon)                        FIVEWORDINLINE(0x2F3C, 0x000C, 0x0546, 0x7000, 0xA82A);
  443.  
  444. EXTERN_API( ComponentResult )
  445. MediaHitTestTargetRefCon        (MediaHandler             mh,
  446.                                  long                     targetRefCon,
  447.                                  long                     flags,
  448.                                  Point                     loc,
  449.                                  Boolean *                wasHit)                                FIVEWORDINLINE(0x2F3C, 0x0010, 0x0547, 0x7000, 0xA82A);
  450.  
  451. EXTERN_API( ComponentResult )
  452. MediaGetActionsForQTEvent        (MediaHandler             mh,
  453.                                  QTEventRecordPtr         event,
  454.                                  long                     targetRefCon,
  455.                                  QTAtomContainer *        container,
  456.                                  QTAtom *                atom)                                FIVEWORDINLINE(0x2F3C, 0x0010, 0x0548, 0x7000, 0xA82A);
  457.  
  458. EXTERN_API( ComponentResult )
  459. MediaDisposeTargetRefCon        (MediaHandler             mh,
  460.                                  long                     targetRefCon)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0549, 0x7000, 0xA82A);
  461.  
  462. EXTERN_API( ComponentResult )
  463. MediaTargetRefConsEqual            (MediaHandler             mh,
  464.                                  long                     firstRefCon,
  465.                                  long                     secondRefCon,
  466.                                  Boolean *                equal)                                FIVEWORDINLINE(0x2F3C, 0x000C, 0x054A, 0x7000, 0xA82A);
  467.  
  468. EXTERN_API( ComponentResult )
  469. MediaSetActionsCallback            (MediaHandler             mh,
  470.                                  ActionsUPP             actionsCallbackProc,
  471.                                  void *                    refcon)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x054B, 0x7000, 0xA82A);
  472.  
  473. EXTERN_API( ComponentResult )
  474. MediaPrePrerollBegin            (MediaHandler             mh,
  475.                                  TimeValue                 time,
  476.                                  Fixed                     rate,
  477.                                  PrePrerollCompleteUPP     completeProc,
  478.                                  void *                    refcon)                                FIVEWORDINLINE(0x2F3C, 0x0010, 0x054C, 0x7000, 0xA82A);
  479.  
  480. EXTERN_API( ComponentResult )
  481. MediaPrePrerollCancel            (MediaHandler             mh,
  482.                                  void *                    refcon)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x054D, 0x7000, 0xA82A);
  483.  
  484. EXTERN_API( ComponentResult )
  485. MediaExecuteOneAction            (MediaHandler             mh,
  486.                                  QTAtomContainer         container,
  487.                                  QTAtom                 actionAtom)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x054E, 0x7000, 0xA82A);
  488.  
  489. EXTERN_API( ComponentResult )
  490. MediaEnterEmptyEdit                (MediaHandler             mh)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x054F, 0x7000, 0xA82A);
  491.  
  492. EXTERN_API( ComponentResult )
  493. MediaCurrentMediaQueuedData        (MediaHandler             mh,
  494.                                  long *                    milliSecs)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0550, 0x7000, 0xA82A);
  495.  
  496.  
  497.  
  498.  
  499. /* selectors for component calls */
  500. enum {
  501.     kMediaInitializeSelect                            = 0x0501,
  502.     kMediaSetHandlerCapabilitiesSelect                = 0x0502,
  503.     kMediaIdleSelect                                = 0x0503,
  504.     kMediaGetMediaInfoSelect                        = 0x0504,
  505.     kMediaPutMediaInfoSelect                        = 0x0505,
  506.     kMediaSetActiveSelect                            = 0x0506,
  507.     kMediaSetRateSelect                                = 0x0507,
  508.     kMediaGGetStatusSelect                            = 0x0508,
  509.     kMediaTrackEditedSelect                            = 0x0509,
  510.     kMediaSetMediaTimeScaleSelect                    = 0x050A,
  511.     kMediaSetMovieTimeScaleSelect                    = 0x050B,
  512.     kMediaSetGWorldSelect                            = 0x050C,
  513.     kMediaSetDimensionsSelect                        = 0x050D,
  514.     kMediaSetClipSelect                                = 0x050E,
  515.     kMediaSetMatrixSelect                            = 0x050F,
  516.     kMediaGetTrackOpaqueSelect                        = 0x0510,
  517.     kMediaSetGraphicsModeSelect                        = 0x0511,
  518.     kMediaGetGraphicsModeSelect                        = 0x0512,
  519.     kMediaGSetVolumeSelect                            = 0x0513,
  520.     kMediaSetSoundBalanceSelect                        = 0x0514,
  521.     kMediaGetSoundBalanceSelect                        = 0x0515,
  522.     kMediaGetNextBoundsChangeSelect                    = 0x0516,
  523.     kMediaGetSrcRgnSelect                            = 0x0517,
  524.     kMediaPrerollSelect                                = 0x0518,
  525.     kMediaSampleDescriptionChangedSelect            = 0x0519,
  526.     kMediaHasCharacteristicSelect                    = 0x051A,
  527.     kMediaGetOffscreenBufferSizeSelect                = 0x051B,
  528.     kMediaSetHintsSelect                            = 0x051C,
  529.     kMediaGetNameSelect                                = 0x051D,
  530.     kMediaForceUpdateSelect                            = 0x051E,
  531.     kMediaGetDrawingRgnSelect                        = 0x051F,
  532.     kMediaGSetActiveSegmentSelect                    = 0x0520,
  533.     kMediaInvalidateRegionSelect                    = 0x0521,
  534.     kMediaGetNextStepTimeSelect                        = 0x0522,
  535.     kMediaSetNonPrimarySourceDataSelect                = 0x0523,
  536.     kMediaChangedNonPrimarySourceSelect                = 0x0524,
  537.     kMediaTrackReferencesChangedSelect                = 0x0525,
  538.     kMediaGetSampleDataPointerSelect                = 0x0526,
  539.     kMediaReleaseSampleDataPointerSelect            = 0x0527,
  540.     kMediaTrackPropertyAtomChangedSelect            = 0x0528,
  541.     kMediaSetTrackInputMapReferenceSelect            = 0x0529,
  542.     kMediaSetVideoParamSelect                        = 0x052B,
  543.     kMediaGetVideoParamSelect                        = 0x052C,
  544.     kMediaCompareSelect                                = 0x052D,
  545.     kMediaGetClockSelect                            = 0x052E,
  546.     kMediaSetSoundOutputComponentSelect                = 0x052F,
  547.     kMediaGetSoundOutputComponentSelect                = 0x0530,
  548.     kMediaSetSoundLocalizationDataSelect            = 0x0531,
  549.     kMediaGetInvalidRegionSelect                    = 0x053C,
  550.     kMediaSampleDescriptionB2NSelect                = 0x053E,
  551.     kMediaSampleDescriptionN2BSelect                = 0x053F,
  552.     kMediaQueueNonPrimarySourceDataSelect            = 0x0540,
  553.     kMediaFlushNonPrimarySourceDataSelect            = 0x0541,
  554.     kMediaGetURLLinkSelect                            = 0x0543,
  555.     kMediaMakeMediaTimeTableSelect                    = 0x0545,
  556.     kMediaHitTestForTargetRefConSelect                = 0x0546,
  557.     kMediaHitTestTargetRefConSelect                    = 0x0547,
  558.     kMediaGetActionsForQTEventSelect                = 0x0548,
  559.     kMediaDisposeTargetRefConSelect                    = 0x0549,
  560.     kMediaTargetRefConsEqualSelect                    = 0x054A,
  561.     kMediaSetActionsCallbackSelect                    = 0x054B,
  562.     kMediaPrePrerollBeginSelect                        = 0x054C,
  563.     kMediaPrePrerollCancelSelect                    = 0x054D,
  564.     kMediaExecuteOneActionSelect                    = 0x054E,
  565.     kMediaEnterEmptyEditSelect                        = 0x054F,
  566.     kMediaCurrentMediaQueuedDataSelect                = 0x0550
  567. };
  568. enum { uppPrePrerollCompleteProcInfo = 0x00000EC0 };             /* pascal no_return_value Func(4_bytes, 2_bytes, 4_bytes) */
  569. #define NewPrePrerollCompleteProc(userRoutine)                     (PrePrerollCompleteUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppPrePrerollCompleteProcInfo, GetCurrentArchitecture())
  570. #define CallPrePrerollCompleteProc(userRoutine, mh, err, refcon)  CALL_THREE_PARAMETER_UPP((userRoutine), uppPrePrerollCompleteProcInfo, (mh), (err), (refcon))
  571.  
  572. #if PRAGMA_STRUCT_ALIGN
  573.     #pragma options align=reset
  574. #elif PRAGMA_STRUCT_PACKPUSH
  575.     #pragma pack(pop)
  576. #elif PRAGMA_STRUCT_PACK
  577.     #pragma pack()
  578. #endif
  579.  
  580. #ifdef PRAGMA_IMPORT_OFF
  581. #pragma import off
  582. #elif PRAGMA_IMPORT
  583. #pragma import reset
  584. #endif
  585.  
  586. #ifdef __cplusplus
  587. }
  588. #endif
  589.  
  590. #endif /* __MEDIAHANDLERS__ */
  591.  
  592.